from django.contrib.auth.models import User
from django.db import models

from utils.modelsMinxin import ModelsSetMixin


# Create your models here.

# 用户详情模型
class UserDetail(ModelsSetMixin):
    SEX_CHOICES = ((0, '女'), (1, '男'))
    age = models.IntegerField(null=True, blank=True, verbose_name="年龄")
    sex = models.IntegerField(null=True, blank=True, verbose_name="性别", choices=SEX_CHOICES)
    avatar = models.TextField(null=True,blank=True,verbose_name="头像")
    phone = models.CharField(null=True,blank=True,verbose_name="手机号",max_length=11,unique=True)
    birthday = models.DateTimeField(null=True,blank=True,verbose_name="生日")

    user = models.OneToOneField(User,on_delete=models.CASCADE)

    class Meta:
        db_table = 'user_detail'



# 行政区划模型
class Area(models.Model):
    name = models.CharField(max_length=20,verbose_name="名称")
    parent = models.ForeignKey("self",on_delete=models.SET_NULL,null=True,blank=True,verbose_name="上级行政区划")

    class Meta:
        db_table = 'area'
        verbose_name = "行政区划"
        verbose_name_plural = verbose_name


    def __str__(self):
        return self.name



# 收货地址
class Address(ModelsSetMixin):
    name = models.CharField(max_length=40,verbose_name="地址名")
    receiver = models.CharField(max_length=40,verbose_name="收货人")
    province = models.ForeignKey(Area,on_delete=models.PROTECT,verbose_name="省",related_name="province_address")
    city = models.ForeignKey(Area,on_delete=models.PROTECT,verbose_name="市",related_name="city_address")
    district = models.ForeignKey(Area,on_delete=models.PROTECT,verbose_name="区",related_name="district_address")
    place = models.CharField(max_length=40,verbose_name="详情地址")
    mobile = models.CharField(max_length=11,verbose_name="手机")

    user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name="用户")

    class Meta:
        ordering = ["-update_time"]
        db_table = 'address'
        verbose_name = "收货地址"
        verbose_name_plural = verbose_name
